←
▼
▲
Sub WriteTextSectionClass::PickUp( Key as string )
残すセクションを選択します。
【引数】
Key
セクションの中に含まれる文字列
ソース
→ ToolsLib.vbs
本関数を1度でも呼び出すと、WriteTextSectionClass のオブジェクトの参照カウンターが 0
になったとき、選択されなかったセクションはすべて削除されます。
本関数を1度も呼び出さなかったときは、すべてのセクションが残ります。
←
▼
▲
関連
[SectionX]
SettingA = abc
SettingB = 12
; comment
[SectionY]
SettingA = BC
下記の形式のテキストファイルで記述された設定値を扱います。
行末までのコメント記号は、行頭のみ対応
空行も可能
セクション名は省略可能
←
▼
▲
Function ParseIniFileLine( Line as string ) as ParsedIniFileLineClass
.ini ファイルに書かれた行を解析します。
【引数】
Line
.ini ファイルの中の1行
解析結果
返り値
Set line = ParseIniFileLine( "[Section1]" )
'// line.Section = "Section1"
'// line.Name = Empty
'// line.Value = Empty
Set line = ParseIniFileLine( "Name = Value" )
'// line.Section = Empty
'// line.Name = "Name"
'// line.Value = "Value"
Set line = ParseIniFileLine( "Name =" )
'// line.Section = Empty
'// line.Name = "Name"
'// line.Value = ""
Set line = ParseIniFileLine( "comment" )
'// line.Section = Empty
'// line.Name = Empty
'// line.Value = Empty
サンプル
[ ] で囲まれた行は、セクション名として解析します。
= がない行は、コメント行として解析します。
ParsedIniFileLineClass
.Section
.Name
.Value
セクション名
左辺
右辺
テスト
ソース
→ vbslib.vbs
→ T_IniFile.vbs
T_GetIniFileTextValue
←
▼
▲
Function GetIniFileTextValue( IniText as string, SectionName as string,
VariableName as string, Option_ as Empty ) as string
.ini ファイルに書かれた設定値を参照します。
【引数】
IniText
SectionName
.ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
関連
テスト
ソース
変数の設定値
返り値
Empty を指定してください
Option_
→ vbslib.vbs
→ T_IniFile.vbs
T_GetIniFileTextValue
Assert GetIniFileTextValue( text, Empty, "NameA", Empty ) = "Value"
サンプル
該当する変数が存在しないときは、Empty が返ります。
Assert GetIniFileTextValue( text, "SectionB", "NameA", Empty ) = "Value"
←
▼
▲
Function GetIniFileTextValues( IniText as string, SectionName as string,
VariableName as string, Option_ as Empty ) as array of string
.ini ファイルに書かれた設定値を複数参照します。
【引数】
IniText
SectionName
.ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
変数の設定値の配列
返り値
Empty を指定してください
Option_
該当する変数が存在しないときは、空の配列が返ります。
サンプル
Assert IsSameArray( GetIniFileTextValues( text, "Section", "NameA", Empty ), _
Array( "Value1", "Value2" )
テスト
ソース
→ T_IniFile.vbs
T_GetIniFileTextValue
→ vbslib.vbs
←
▼
▲
after_text = SetIniFileTextValue( before_text, Empty, "NameA", "Value", Empty )
Function SetIniFileTextValue( IniText as string, SectionName as string,
VariableName as string, Value as Variant, Option_ as Empty ) as string
.ini ファイルに書かれた設定値を変更します。
【引数】
IniText
SectionName
変更前の .ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
サンプル
変更後の .ini ファイルの内容
返り値
Empty を指定してください
変更後の変数の設定値
Option_
Value
関連
テスト
ソース
→ vbslib.vbs
→ T_IniFile.vbs
T_SetIniFileTextValue
該当する変数が存在しないときは、エラーになります。
←
▼
▲
Sub RenumberIniFileData( ReadStream as TextStream, WriteStream as TextStream,
StartNumber as integer, IsPlusSpaceLineOnly as boolean )
.ini ファイルの内容のうち、= より左にある ( ) の中の番号を振り直します。
【引数】
ReadStream
入力ストリーム
WriteStream
出力ストリーム
開始番号
StartNumber
空行があるときだけ番号を+1するかどうか
IsPlusSpaceLineOnly
サンプル・データ
Data(2) = ABC
Data(5) = DEF
Data(6) = DEF
Data(1) = ABC
Data(2) = DEF
Data(3) = DEF
入力
出力
関連
ソース
→ vbslib.vbs
←
▼
▲
Function ParseJSON( JSON_String as string ) as JS_Object
JSON をパース(構文解析)します。
【引数】
JSON_String
返り値
JSON 形式の文字列データ
JSON のデータにアクセスできるオブジェクト
Set json = ParseJSON( "{'attribute_1':'One', 'attr2':'Two'}" )
echo json.attribute_1 '// "One"
サンプル
→ JSON (JavaScript Object Notation)
参考
(src)
省略された属性に対して、返り値から参照しようとすると、エラー 438 になります。
←
▼
▲
関連
←
▼
▲
CutSharpIf "sample.c", Empty, "SAMPLE", True
Sub CutSharpIf( InputPath as string, OutputPath as string, Symbol as string, IsCutTrue as boolean )
#ifdef 〜 #endif をカットします。
【引数】
InputPath
OutputPath
入力ファイルやフォルダーのパス
出力ファイルやフォルダーのパス
Symbol
#define シンボル、または、#if の条件文
関連
テスト
サンプル
ソース
T_CutSharpIf
IsCutTrue
#if が真の部分をカットする(True)か、偽の部分をカットする(False)か
→ T_CutSharpIf.vbs
→ ToolsLib.vbs
CutSharpIf "FolderA", "FolderB", "SAMPLE_A || SAMPLE_B", False
→ ParsedRanges_getCut_by_PP_Directive
→ vbslib_helper.c
←
▼
▲
Sub CutCommentC( in_Path as string, in_Empty as Empty )
C/C++言語のソース ファイルからコメントを削除します。
【引数】
in_Path
コメントを削除するソース ファイルのパス
in_Empty
Empty を指定してください(予約)
→ clib - CutCommentC_1
コメントを削除する前の内容は上書きされて無くなるので、バックアップを取ってから実行して
ください。
テスト
→ T_CutCommentC.vbs
ソース
→ ToolsLib.vbs
→ vbslib_helper.c
Set w_=AppKey.NewWritable( "Folder" ).Enable()
CutCommentC "Folder\Source.c", Empty
"Folder\Source.c"
参考
T_CutCommentC
in_Path 引数には、
の引数のように ワイルドカードなどを指定できます。
←
▼
▲
テスト
→ T_NaturalDocs.vbs
→ ToolsLib.vbs
ソース
MakeDocumentByNaturalDocs "src", "HTML", Empty
Sub MakeDocumentByNaturalDocs( SourceRootPath as string, DocumentRootPath as string,
Options as Empty )
Natural Docs を実行して、ソースファイルからHTML形式のドキュメントを生成します。
【引数】
SourceRootPath
DocumentRootPath
ソースファイルがあるフォルダーのパス
HTML形式のドキュメントを生成するフォルダーのパス
Options
Empty を指定してください
サンプル
Natural Docs や ActivePerl がインストールされていないと、インストールを即す警告が表示
されます。
参考
DocumentRootPath に指定したパスにフォルダーを消すと、Natural Docs のプロジェクト
フォルダー(キャッシュ)を作り直します。 プロジェクトフォルダーは、
の中に作られ、日付が変わると作り直します。
補足
→ Natural Docs
参考
を設定すると、Natural Docs に入力する拡張子を
変更できます。
ソースファイルは、現在のコードページ(日本なら Shift-JIS)、または Unicode(UTF-16) に
してください。
関連
←
▼
▲
MakeDocumentBy_doxygen "src", "HTML", Empty
Sub MakeDocumentBy_doxygen( SourceRootPath as string, DocumentRootPath as string,
Options as Empty )
doxygen を実行して、ソースファイルからHTML形式のドキュメントを生成します。
【引数】
SourceRootPath
DocumentRootPath
ソースファイルがあるフォルダーのパス
HTML形式のドキュメントを生成するフォルダーのパス
Options
Empty を指定してください
サンプル
参考
ソースファイルは、現在のコードページ(日本なら Shift-JIS)、または Unicode(UTF-16) に
してください。
→ doxygen
関連
テスト
→ T_doxygen.vbs
→ ToolsLib.vbs
ソース
doxygen がインストールされていないと、インストールを即す警告が表示されます。
参考
DocumentRootPath に指定したパスにフォルダーを消すと、Natural Docs のプロジェクト
フォルダー(キャッシュ)を作り直します。 プロジェクトフォルダーは、
の中に作られ、日付が変わると作り直します。
補足
を設定すると、Natural Docs に入力する拡張子を
変更できます。
←
▼
▲
Sub ConvertDocumetCommentFormat( InputPath as string, OutputPath as string,
InputFormat as string, OutputFormatFilePath as string )
プログラムのソースファイルの中にある、ドキュメントに変換できるコメントの形式を変換します。
【引数】
InputPath
OutputPath
InputFormat
現在、"NaturalDocs" のみ指定できます
→ ToolsLib.vbs
テスト
ソース
→ T_TextSection.vbs
T_ConvertDCF
出力するコメントのテンプレートが書かれたファイルのパス
OutputFormatFilePath
入力ファイルやフォルダーのパス
出力ファイルやフォルダーのパス
→ T_ConvertDCF フォルダー
サンプル
コールツリー
ConvertDCF_Class_convert
NaturalCommentClass_printXML
NaturalDocsHeaderClass
(src)
ConvertDCF_onXML_Element
if ( _tcsicmp( in_Status->TagName, _T("Text") ) == 0 ) {
ConvertDCF_Class::Comments.ID
(src)
(src)
NaturalCommentClass
(src)
ConvertDCF_CommentClass_getReplaced
(src)
/* Set "descriptions" : Replaced from "${Descriptions}" */
(src)
ConvertDocumentCommentFormat
ConvertDocumetCommentFormat
1つのコメントを置き換える
MakeNaturalComments_C_Language
NaturalDocs 形式コメントをパースする
現在、C言語の NaturalDocs 形式コメントから、doygen (Javadoc)形式コメントへの変換の
一部のみ可能です。
関連
(src)
←
▼
▲
Sub DoTextShrink( TxMxFilePath as string, Option as Empty )
セクション(NaturalDocs で区切ったソース ファイル)のうち、使用していないセクションを削除します。
【引数】
TxMxFilePath
Option
編集するファイルなどが記述された .txmx ファイルのパス(下記)
Empty を指定してください
テスト
→ T_TextSection.vbs
T_TextShrink
ListUpTextShrinkKeywords
TxMxClass
(src)
DoTextShrink
(src)
ListUpUsingTxMxKeywords
vbs(src)
MakeShrinkedSectionsFile
(src)
ListUpUsingTxMxKeywords
c(src)
DoTextMix
vbs(src)
c(src)
TxMxListUp_listUpUsedNames
c(src)
TxMxListUp_readSetting
T_MakeTxScFile
MakeNaturalComments_C_Language
NaturalCommentClass
→ T_TextShrink フォルダー
ソース
→ ToolsLib.vbs
関連
←
▼
▲
CSV 形式の1行を解析して、それぞれの項目を配列に格納します。
Function ArrayFromCSV( a_CSV as string ) as Array of string
For Each column In ArrayFromCSV( "ABC , DEF" )
Next
【引数】
a_CSV
返り値
CSV 形式の1行
(出力)CSV の項目が入った配列
関連
各項目の両端の空白が削除されたものが戻ります。
項目の端に空白文字がある場合と、項目の中にコンマやダブルクォーテーション(")が
あるときは、" " で囲んでください。 ただし、ダブルクォーテーション1文字あたり、
ダブルクォーテーションを2つ並べてください。
→ T_CSV.vbs # ArrayFromCSV
テスト
(src)
Function ArrayFromCSV_Int( a_CSV as string ) as Array of integer
上記 ArrayFromCSV の返り値は、Array( "ABC", "DEF" )
ABC , DEF
A, " ""ABC,"" "
A
"ABC,"
CSV:
各項目:
VBS:
ArrayFromCSV( "A, "" """"ABC,"""" """ )
CSV とは別に、VBS も同様に " 文字は " を2つ並べる
"A, ,C" の真ん中の要素のように、何も無いときは、配列の要素が Empty になります。
"A, " のように最後がコンマのときは、配列の最後の要素が Empty になります
" " のように、空白文字や空文字列のときは、配列要素数が 0 になります。
ArrayFromCSV( "A,,C" ) = Array( "A", Empty, "C" )
ArrayFromCSV( "A," ) = Array( "A", Empty )
要素に "" (ダブルクオーテーション2つだけ)が指定されたときは、空文字列になります。
ArrayFromCSV( "A, """"" ) = Array( "A", "" )
ArrayFromCSV( " " ) = Array( )
複数行の文字列を指定するときは、最後の行以外の行末を "," にしてください。
ArrayFromCSV( "A, B," +vbCRLF+ "C, D," +vbCRLF+ "E, F" )
= Array( "A","B","C","D","E","F" )
A, B,
C, D,
E, F
つまり
=
A, B, C, D, E, F
サンプル
性能について
本関数は処理が遅いです。
CSV ファイルのデータは、1行に対応するクラスの配列にキャッシュしておくと速くなります。
paths = ArrayFromCSV( Replace( Trim2( multi_line_string ), vbCRLF, "," ) )
サンプル
複数行の文字列から、各行を配列にする
←
▼
▲
For Each column In ArrayFromOrPipe( Array( "*.txt | ""A *.log""", "*.xml" ) )
Next
| で区切られた文字列を解析して、それぞれの項目を配列に格納します。
Function ArrayFromOrPipe( in_OrPipedString as string or array of string ) as Array of string
For Each column In ArrayFromOrPipe( "ABC | DEF" )
Next
【引数】
in_OrPipedString
返り値
| または , で区切られた文字列、または、その配列
(出力) 文字列の配列
上記 ArrayFromOrPipe の返り値は、Array( "ABC", "DEF" )
ABC | DEF
サンプル
→ vbslib.vbs
ソース
とほぼ同じですが、コンマだけでなく | も区切り記号として処理します。
"*.txt | ""A *.log""", "*.xml"
上記 ArrayFromOrPipe の返り値は、Array( "*.txt", "A *.log", "*.xml" )
サンプル
テスト
→ T_Wildcard.vbs
T_ArrayFromWildcard1
T_ArrayFromWildcard2
←
▼
▲
Function CSVFrom( a_Array as array ) as string
配列を CSV 形式に変換します。
【引数】
a_Array
返り値
配列
CSV 形式文字列
ソース
→ T_CSV.vbs
テスト
→ vbslib.vbs
←
▼
▲
Function CSVText( s as string ) as string
CSV の1項目に変換します。
サンプル
s = CSVText( "a,b" )
s は、"""a,b""" という1つの値になります。
a と b という2つの値ではありません。
s = ""
For Each t In Array( "a", "b" )
If s <> "" Then s = s + ", "
s = s + CSVText( t )
Next
サンプル
CSV の1行を作成します
→ T_CSV.vbs
ソース
テスト
→ vbslib.vbs